package com.dingding.service.usermangerservice;

import java.util.List;

import com.dingding.bean.databean.request.ReqBackPassword;
import com.dingding.bean.databean.request.ReqResetPassword;
import com.dingding.bean.databean.request.ReqSetDepositPassword;
import com.dingding.bean.databean.request.ReqUserLogin;
import com.dingding.bean.databean.request.ReqUserLoginByNum;
import com.dingding.bean.databean.request.ReqUserLogout;
import com.dingding.bean.databean.request.ReqUserRegister;
import com.dingding.bean.databean.request.ReqVerifyDepositNum;
import com.dingding.bean.databean.request.ReqVerifyDepositPwd;
import com.dingding.bean.databean.request.ReqVerifyLoginPwd;
import com.dingding.bean.databean.response.DataResponse;
import com.dingding.bean.databean.response.ResUserLoginByNum;
import com.dingding.bean.entity.UserLogin;
import com.dingding.bean.entity.Useraccount;
import com.dingding.bean.entity.Userdetail;
import com.dingding.bean.entity.Userorder;
import com.dingding.bean.entity.Vehicleinfo;

/**
 * 
 * @ClassName: IUserLoginService 
 * @Description: 用户登录操作service
 * @author cheshaowei
 * @date 2015-10-21 上午10:34:07
 */
public interface IUserLoginService  {


	/**
	 * 用户信息初始化
	 * @param resUserLoginByNum
	 **/
	public void userInitializing(ReqUserLoginByNum reqUserLoginByNum, DataResponse dataResponse,
			ResUserLoginByNum resUserLoginByNum);

	
	/**
	 * @Title: getUserLoginInfo 
	 * @Description:获取用户登录信息
	 * @author cheshaowei
	 * @throws
	 */
	public UserLogin getUserLoginInfo(String userId, DataResponse dataResponse);
	
	
	/**
	 * @Title: resetPassword
	 * @Description:重置密码
	 * @param reqResetPassword 请求bean
	 * @param dataResponse 返回信息封装bean
	 * @author fengshuonan
	 * @throws
	 */
	public void resetPassword(ReqResetPassword reqResetPassword,DataResponse dataResponse);
	
	
	/**
	 * @Title: backPassword
	 * @Description:找回密码
	 * @param backPassword 找回密码请求bean
	 * @param dataResponse 响应bean
	 * @author fengshuonan
	 * @return void
	 * @throws
	 */
	public void backPassword(ReqBackPassword backPassword,DataResponse dataResponse);
	
	
	/**
	 * @Title: setDepositPassword
	 * @Description:设置提现密码
	 * @param depositPassword 提现密码
	 * @param dataResponse 响应bean
	 * @author fengshuonan
	 * @return void
	 * @throws
	 */
	public void setDepositPassword(ReqSetDepositPassword depositPassword, DataResponse dataResponse);

	
	/**
	 * @Title: userRegister
	 * @Description:用户注册
	 * @param userRegister
	 *            请求bean
	 * @param dataResponse
	 *            响应bean
	 * @author Li Yi
	 * @throws
	 * @Override
	 */
	public void userRegister(ReqUserRegister reqUserRegister,DataResponse dataResponse);
	
	
	/**
	 * @Title: verifyLoginPwd
	 * @Description:首次提现校验登录密码
	 * @param reqVerifyLoginPwd 请求bean
	 * @param dataResponse 响应bean
	 * @author fengshuonan
	 * @return void
	 * @throws
	 */
	public void verifyLoginPwd(ReqVerifyLoginPwd reqVerifyLoginPwd,DataResponse dataResponse);
	
	/**
	 * @param deviceType 
	 * 
	 * @Title: userLogin
	 * @Description: 用户登录
	 * @param reqUserLogin
	 * @param dataResponse 
	 * @author Li Yi
	 * @return 
	 * @throws
	 */
	public void userLogin(ReqUserLogin reqUserLogin,DataResponse dataResponse);
	
	


	/**
	 * @Title: verifyDepositPwd
	 * @Description:提现时校验提现密码
	 * @param reqVerifyDepositPwd 校验提现密码bean
	 * @param dataResponse 响应bean
	 * @author fengshuonan
	 * @return void
	 * @throws
	 */
	public void verifyDepositPwd(ReqVerifyDepositPwd reqVerifyDepositPwd,DataResponse dataResponse);


	/**
	 * 
	 * @Title: userLogout 
	 * @Description: 用户注销
	 * @param reqUserLogout
	 * @param dataResponse 
	 * @author lijinchao
	 * @return void
	 * @throws
	 */
	public void userLogout(ReqUserLogout reqUserLogout,DataResponse dataResponse);

	/**
	 * @Title: resetOrderNumber 
	 * @Description: 重置每日接单次数和取消次数
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public void resetOrderNumber();
	
	/**
	 * @Title: resetOrderNumber 
	 * @Description: 获取全部用户登录信息(数据迁移专用)
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public List<UserLogin> getAllUserLogin();
	
	/**
	 * @Title: deleteAllUserLogin 
	 * @Description: 删除全部用户登录信息(数据迁移专用)
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public boolean deleteAllUserLogin();
	
	/**
	 * @Title: updateAllUserLogin 
	 * @Description: 修改用户登录Id(数据迁移专用)
	 * @param userLogins
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public boolean updateAllUserLogin(List<UserLogin> userLogins,List<Useraccount> useraccounts,List<Userdetail> userdetails,List<Vehicleinfo> vehicleinfos,List<Userorder> userorders);
	
	/**
	 * @Title: userLoginByNum
	 * @Description: 用户登录
	 * @param reqUserLoginByNum
	 * @param dataResponse 
	 * @author Li Yi
	 * @return 
	 * @throws
	 */
	public void userLoginByNum(ReqUserLoginByNum reqUserLoginByNum,DataResponse dataResponse);
	
	/**
	 * @Title: verifyDepositNum
	 * @Description:提现时校验提现密码
	 * @param reqVerifyDepositNum 校验提现密码bean
	 * @param dataResponse 响应bean
	 * @author Li Yi
	 * @return void
	 * @throws
	 */
	public void verifyDepositNum(ReqVerifyDepositNum reqVerifyDepositPwd,DataResponse dataResponse);
}
